# Notes CMakeUtils.cmake

# 获取目录下的所有子目录
function(GET_ALL_SUBDIRS _dir_in, _list_out)
  file(GLOB __tmp_list "${ARGV0}/*")
  set(__tmp_dirs)
  foreach(dir ${__tmp_list})
    if(IS_DIRECTORY ${dir})
      get_filename_component(filename ${dir} NAME)
      set(__tmp_dirs ${__tmp_dirs} ${filename})
    endif()
  endforeach()
  set(${ARGV1}
      ${__tmp_dirs}
      PARENT_SCOPE)
endfunction()

# 获取目录下的所有头文件
function(GET_ALL_HEADERS _dir_in, _list_out)
  file(GLOB __tmp_list "${ARGV0}/*.hpp" "${ARGV0}/*.h")
  set(${ARGV1}
      ${__tmp_list}
      PARENT_SCOPE)
endfunction()

# 获取目录下的所有源文件
function(GET_ALL_SOURCES _dir_in, _list_out)
  file(GLOB __tmp_list "${ARGV0}/*.cpp" "${ARGV0}/*.c")
  set(${ARGV1}
      "${__tmp_list}"
      PARENT_SCOPE)
endfunction()

# 获取目录下的所有资源文件
function(GET_ALL_RESOURCES _dir_in, _list_out)
  file(GLOB __tmp_list "${ARGV0}/*.rc" "${ARGV0}/*.qrc" "${ARGV0}/*.ui")
  set(${ARGV1}
      "${__tmp_list}"
      PARENT_SCOPE)
endfunction()

# 获取目录下的所有 cmake 文件
function(GET_ALL_CMAKES _dir_in, _list_out)
  file(GLOB __tmp_list "${ARGV0}/*.cmake")
  set(${ARGV1}
      "${__tmp_list}"
      PARENT_SCOPE)
endfunction()

# 获取目录下的所有 lib 文件
function(GET_ALL_LIBS _dir_in, _list_out)
  file(GLOB __tmp_list "${ARGV0}/*.lib")
  set(${ARGV1}
      "${__tmp_list}"
      PARENT_SCOPE)
endfunction()

# 获取目录下的所有 dll 文件
function(GET_ALL_DLLS _dir_in, _list_out)
  file(GLOB __tmp_list "${ARGV0}/*.dll")
  set(${ARGV1}
      "${__tmp_list}"
      PARENT_SCOPE)
endfunction()
